fix(macOS): Also send user agent over XPC service
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 8 May 2025 05:50:00 +0000 (13:50 +0800)
committerJyrki Gadinger <nilsding@nilsding.org>
Mon, 28 Jul 2025 07:48:16 +0000 (09:48 +0200)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/ClientCommunicationProtocol.h
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/ClientCommunicationService.swift
src/gui/macOS/fileproviderxpc_mac.mm

index 6f7f0e24da6664dbddb1de90a0a74ab71be84e94..8e72420217f6558fe5ab94789c4513ee8edca153 100644 (file)
@@ -23,7 +23,8 @@
 - (void)configureAccountWithUser:(NSString *)user
                           userId:(NSString *)userId
                        serverUrl:(NSString *)serverUrl
-                        password:(NSString *)password;
+                        password:(NSString *)password
+                       userAgent:(NSString *)userAgent;
 - (void)removeAccountConfig;
 - (void)createDebugLogStringWithCompletionHandler:(void(^)(NSString *debugLogString, NSError *error))completionHandler;
 - (void)getFastEnumerationStateWithCompletionHandler:(void(^)(BOOL enabled, BOOL set))completionHandler;
index 41670fe557a8d216a3a3c6972dbfb4ef0c83e6a3..687c08ca9b01de298136861535dbe3d7645bfd6e 100644 (file)
@@ -48,15 +48,21 @@ class ClientCommunicationService: NSObject, NSFileProviderServiceSource, NSXPCLi
         completionHandler(accountUserId, nil)
     }
 
-    func configureAccount(withUser user: String,
-                          userId: String,
-                          serverUrl: String,
-                          password: String) {
+    func configureAccount(
+        withUser user: String,
+        userId: String,
+        serverUrl: String,
+        password: String,
+        userAgent: String
+    ) {
         Logger.desktopClientConnection.info("Received configure account information over client communication service")
-        self.fpExtension.setupDomainAccount(user: user,
-                                            userId: userId,
-                                            serverUrl: serverUrl,
-                                            password: password)
+        self.fpExtension.setupDomainAccount(
+            user: user,
+            userId: userId,
+            serverUrl: serverUrl,
+            password: password,
+            userAgent: userAgent
+        )
     }
 
     func removeAccountConfig() {
index 227e48d653142e5514da868bad69951ca49a5f8b..b58fd794331facb700ec50a8e3ab5b34c7ec2818 100644 (file)
@@ -12,6 +12,7 @@
  * for more details.
  */
 
+#include "common/utility.h"
 #include "fileproviderxpc.h"
 
 #include <QLoggingCategory>
@@ -69,12 +70,14 @@ void FileProviderXPC::authenticateExtension(const QString &extensionAccountId) c
     NSString *const userId = account->davUser().toNSString();
     NSString *const serverUrl = account->url().toString().toNSString();
     NSString *const password = credentials->password().toNSString();
+    NSString *const userAgent = QString::fromUtf8(Utility::userAgentString()).toNSString();
 
     const auto clientCommService = (NSObject<ClientCommunicationProtocol> *)_clientCommServices.value(extensionAccountId);
     [clientCommService configureAccountWithUser:user
                                          userId:userId
                                       serverUrl:serverUrl
-                                       password:password];
+                                       password:password
+                                      userAgent:userAgent];
 }
 
 void FileProviderXPC::unauthenticateExtension(const QString &extensionAccountId) const